<!DOCTYPE html style="height:100%" >
<head>
    
    <?php
            function getPlayerCount(){
				// MySQL-Host
				$mysqlhost="localhost"; 
				// MySQL-User
				$mysqluser="root"; 
				// Passwort
				$mysqlpwd=""; 
				// Datenbank
				$mysqldb="my_pffm";
				
				// Verbindung zur Datenbank herstellen
				$connection= new mysqli($mysqlhost, $mysqluser, $mysqlpwd, $mysqldb);
				if (!$connection) {
				  die("Verbindung Fehlgeschlagen  :" . mysql_error());
				}
				
				// Abfrage aller gesammelten Spielerdaten
				$statement = $connection->prepare("SELECT COUNT(*) AS anzahl
												   FROM players");
												   
				// Statement ausführen								   
				$statement->execute();
				
				// Variablen binden
				$statement->bind_result($countPlayer);
				mysqli_stmt_fetch($statement);
				
				// Listenelemente erzeugen
				for($i=1;$i<=$countPlayer;$i++){
					echo "<option value=".$i.">".$i."</option>";
				}
				}
    ?>
    
        <meta name="viewport" content="initial-scale=1.0, user-scalable=no"/>
        <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
        
        <title>Wo liegt Was: Administration</title>
        
        <link rel="stylesheet" 
              href="css/tabs.css" 
              type="text/css" 
              media="screen, projection"/>
              
        <link href="http://code.google.com/apis/maps/documentation/javascript/examples/default.css" 
              rel="stylesheet" 
              type="text/css" />
        
         <!-- Google Maps API -->
         <script type="text/javascript" 
                 src="http://maps.google.com/maps/api/js?v=3.7&sensor=false">
         </script>
        
        <!-- JQuery -->
        <script type="text/javascript" 
                src="js/jquery-1.6.2.min.js">
        </script>
        
        <!-- JQuery UI -->
        <script type="text/javascript" 
                src="js/jquery-ui-1.7.custom.min.js">
        </script>
        
        <!-- Fehlermanagement -->
        <script type="text/javascript" 
                src="js/geocodeError.js">
        </script>
        
        <!-- Fehleranzeige -->
  		<script type="text/javascript" 
        	   src="js/standardError.js">
  		</script>
        
		<!-- JQuery Tabs -->
        <script type="text/javascript">
            $(function() {
                var $tabs = $('#tabs').tabs();
        
                $(".ui-tabs-panel").each(function(i){
                  var totalSize = $(".ui-tabs-panel").size() - 1;
                });
        
                $('.next-tab, .prev-tab').click(function() { 
                       $tabs.tabs('select', $(this).attr("rel"));
                       return false;
                });
            });
        </script>
        
        <script type="text/javascript">
        
        var directionDisplay;
        var directionsService = new google.maps.DirectionsService();
        
        // Kartenobjekt
        var map;
        
        // Icon
        var icontype;
        
        // Bereits geokodiert?
        var geocoded = false;
          
        // Definieren der Icons
        var customIcons = {
          question: {
            icon: './icons/question.png',
          } 
        };
        
        // Information zur Gewinnerermittlung anzeigen
        function gewinnermittlung_Info(element){
            
            // zufällig
            if(element.id=="rad_zufall"){
                document.getElementById("gewinnermittelung_info").innerHTML = 
                "Die Gewinner werden zufällig aus dem Teilnehmerpool gezogen.";
            }
            // best of
            else{
                document.getElementById("gewinnermittelung_info").innerHTML = 
                "Die Spieler mit den besten Spielergebnissen werden als Gewinner ermittelt.";
            }
        }
    
        // Eine neue Frage in die Datenbank einfügen
        function insertQuestion(){
        
        var ajaxRequest;  
        
        try{
            // Opera 8.0+, Firefox, Safari
            ajaxRequest = new XMLHttpRequest();
        } catch (e){
            // Internet Explorer Browsers
            try{
                ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try{
                    ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e){
                    standardError("Bei der Anfrage ist ein Fehler aufgetreten:" +e);
                    return false;
                }
            }
        }
        // Callback Methode
        ajaxRequest.onreadystatechange = function(){
            
            // Wenn erfolgreich --> Frage aus Textfeld entfernen,
			// Button ausblenden, Information ausgeben
            if(ajaxRequest.readyState == 4){
				standardInfo("Die Frage wurde erfolgreich eingetragen");
                document.getElementById("WLW_frage").value = "";
                $('#btn_db').fadeOut(300);
            }
        }
        
        // Daten der Frage auslesen
        var geoX = document.getElementById('WLW_posX_hidden').value;
        var geoY = document.getElementById('WLW_posY_hidden').value;
        var ort = document.getElementById('WLW_ort_hidden').value;
        var frage= document.getElementById('WLW_frage').value;
        
        // Query zusammensetzen
        var queryString = "?geoX=" + geoX + "&geoY=" + geoY + "&ort=" + ort + "&frage=" + frage;
        
        // AJAX-Request senden
        try {
            ajaxRequest.open("GET", "insertQuestion.php" + queryString, false);
            ajaxRequest.send(null); 
            
        } catch (e) {
            standardError("Es ist ein Fehler aufgetreten: " +e);
        }
        
        // Administration der Fragen neu anzeigen
        showAdministration();
    }
    
    
    // Realisiert das Drucken der Gewinnanschreiben
    function printAnschreiben(){
        
        // Auswahl: Best of / Zufällige Gewinner
        if(document.getElementById("rad_bestof").checked == true){
            var art = "B";
        }
        else{
            var art = "Z";
        }
        
        // Anzahl der zu generierenden Anschreiben
        var count = document.getElementById("select_count").value;
    
        // URL zum PDF-Generator
        var url = "pdf/anschreiben.php?art=" + art + "&anzahl=" + count;
        
        // IE7+, Firefox, Chrome, Opera, Safari
            if (window.XMLHttpRequest){
              xmlhttp=new XMLHttpRequest();
            }
            // IE6, IE5 (ältere Browser)
            else{ 
              xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
        
            // Alle Daten empfangen (4) --> Ausgabe über erfolgreiches erstellen
            xmlhttp.onreadystatechange=function(){
              if (xmlhttp.readyState==4){
                      standardInfo("Die Anschreiben wurden erfolgreich erstellt");
              }
            }
            
            // AJAX-Request senden
            xmlhttp.open("GET",url,false);
            xmlhttp.send();
    
    }
    
        // Überprüft ob eine Frage vollständig ist
        // Bedingungen: Geokodierte Werte liegen vor & Frage wurde definiert
        function CheckQuestion(){
            var count = document.getElementById("WLW_frage").value.length;
            var geocodedX = document.getElementById("WLW_posX").value.length;
            var geocodedY = document.getElementById("WLW_posY").value.length;
                    
            if((count > 3) && (geocodedX > 0) && (geocodedY > 0) && (geocoded == true)){
                $('#btn_db').fadeIn(500);
            }
            else{
                $('#btn_db').fadeOut(500);
            }
        }
        
        function showAdministration(){
            
            // IE7+, Firefox, Chrome, Opera, Safari
            if (window.XMLHttpRequest){
              xmlhttp=new XMLHttpRequest();
            }
            // IE6, IE5 (ältere Browser)
            else{ 
              xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
            
            // Alle Daten empfangen (4) --> Daten schreiben
            xmlhttp.onreadystatechange=function(){
              if (xmlhttp.readyState==4 && xmlhttp.status==200){
                document.getElementById("fragment-2").innerHTML=xmlhttp.responseText;
              }
            }
            
			// AJAX-Request senden
            xmlhttp.open("GET","generate_administration.php",false);
            xmlhttp.send();
        }
        
        // Löscht eine Frage aus der Datenbank
        function deleteQuestion(str){
            
            // Keine Auswahl
            if (str==""){
              document.getElementById("txtHint").innerHTML="";
              return;
            }
            
            // IE7+, Firefox, Chrome, Opera, Safari
            if (window.XMLHttpRequest){
              xmlhttp=new XMLHttpRequest();
            }
            // IE6, IE5 (ältere Browser)
            else{ 
              xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
            
            // Callback-Methode
            // Fragenliste neu anzeigen bei Erfolg
            xmlhttp.onreadystatechange=function(){
              if (xmlhttp.readyState==4 && xmlhttp.status==200){
                standardInfo("Die Frage wurde aus dem System entfernt");
				showAdministration();
              }
            }
            
            // AJAX-Request senden
            xmlhttp.open("GET","deleteQuestion.php?id="+str,false);
            xmlhttp.send();
    
        }
        
        // Funktion zum Bearbeiten einer bereits
        // erstellen Frage
        function editQuestion(id){
            
            // Keine Auswahl
            if (id==""){
              return;
            }
            
            // IE7+, Firefox, Chrome, Opera, Safari
            if (window.XMLHttpRequest){
              xmlhttp=new XMLHttpRequest();
            }
            // IE6, IE5 (ältere Browser)
            else{ 
              xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
            
            // Callback Methode
            xmlhttp.onreadystatechange=function(){
              if (xmlhttp.readyState==4 && xmlhttp.status==200){
              }
            }
            
            // Neuer Fragentext
            var str = document.getElementById(id).value;
            
            // AJAX-Request senden
            xmlhttp.open("GET","editQuestion.php?id="+id+"&str="+str,true);
            xmlhttp.send();
            
        }
        
        
        // Runden einer Zahl x auf n Stellen
        function runde(x, n) {
          if (n < 1 || n > 14) return false;
          
          var e = Math.pow(10, n);
          var k = (Math.round(x * e) / e).toString();
          
          if (k.indexOf('.') == -1) k += '.';
            k += e.toString().substring(1);
            
          return k.substring(0, k.indexOf('.') + n+1);
        }
    
        // Karte initialisieren
        function initialize() {
            
            // Fragenliste anzeigen
            showAdministration();
            
            // Geocoder-Objekt initialisieren
            geocoder = new google.maps.Geocoder();
            directionsDisplay = new google.maps.DirectionsRenderer();
            
            // Kartenoptionen
            var myOptions = {
              zoom:15,
              navigationControl: false,
              mapTypeControl: false,
              scaleControl: true,
              mapTypeId: google.maps.MapTypeId.ROADMAP,
            }
            
            // Karte anzeigen
            map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
            directionsDisplay.setMap(map);
            
            // Geocodieren des aktuellen Ortes
            myGeocode();
            
        }
                
        // Funktion die einen Ort geocodiert und Ihn dann mittels
        // eines Markers in der Karte anzeigt
        function myGeocode() {
			
        // Ort der Codiert werden soll
        var address = document.getElementById("WLW_ort").value;
    
        if (geocoder) {
          geocoder.geocode( { 'address': address}, function(results, status) {
            
            // Geocodierung erfolgreich?
            if (status == google.maps.GeocoderStatus.OK) {
    
             geocoded = true;
                          
              // Zentrum der Karte auf den gesuchten Ort richten
              map.setCenter(results[0].geometry.location);
              
              // Symbol wählen
              var type = "question";
              var icon = customIcons[type] || {};
              
              // Marker platzieren
              var marker = new google.maps.Marker({
                  map: map, 
                  position: results[0].geometry.location,
                  icon: icon.icon,
                  bouncy: true
              });
                  
              // LatLng zur Abfrage der Längen und Breitengrad
              var myLatLng = new google.maps.LatLng();
              myLatLng = marker.getPosition();
            
              var myPointX = new google.maps.Point();
              var myPointY = new google.maps.Point();
              
              // Längen und Breitengrad bestimmen
              myPointX = myLatLng.lat();
              myPointY = myLatLng.lng();
              
              // Das Ergebnis auf 6 Nachkommestellen runden
              myPointX = runde(myPointX, 9);
              myPointY = runde(myPointY, 9);
              
              // Werte in Textfelder schreiben von wo aus diese in
              // die Datenbank übernommen werden können
              document.getElementById("WLW_posX").value = myPointX;
              document.getElementById("WLW_posY").value = myPointY;
              
              document.getElementById("WLW_posX_hidden").value = myPointX;
              document.getElementById("WLW_posY_hidden").value = myPointY;
              document.getElementById("WLW_ort_hidden").value = address;
 
            } 
            // Fehler aufgetreten?
            // --> Fehleranzeige
            else{
                geocodeError(status);
                geocoded = false;
                $('#btn_db').fadeOut(500);
            }
    
            
          });
        }
      }
        
		
        // Auswahl des Exportverfahrens (CSV oder PDF)
        function set_Download(element){
            if(element.name == 'csv')
                document.getElementById('exportFrame').src = "exportCSV.php";
            if(element.name == 'pdf')
                document.getElementById('exportFrame').src = "pdf/exportPDF.php";
            
    }
		
		 // Auswahl wie die Daten exportiert werden sollen
		 // Bestückt den Absende-Button mit den entsprechenden
		 // Eigenschaften	
		 function set_Export(element){
              
			  // PDF
			  if(element.value == 'pdf'){
                  document.getElementById("buttonExport").value = "PDF erzeugen";
                  document.getElementById("buttonExport").name = "pdf";
                  document.getElementById("export_info").innerHTML = "Exportieren aller Spielerdaten in Form einer PDF Liste";
              }
              
			  // CSV
              if(element.value == 'csv'){
                  document.getElementById("buttonExport").value = "CSV erzeugen";
                  document.getElementById("buttonExport").name = "csv";
                  document.getElementById("export_info").innerHTML = "Export der Spielerdaten in Form einer mit Excel bearbeitbaren CSV Liste";
              }     
          }
    
    </script>
    
    <link href="css/places.css" 
    	  rel="stylesheet" 
          type="text/css" />
          
    <link href="css/error.css" 
    	  rel="stylesheet" 
          type="text/css" />
    
</head>

<body onload="initialize()" bgcolor="#DEEFF8">

    <!-- Ausgabe von Fehlern -->
    <div id="errorInfo" class="errorInfo">
    
    </div>
    
    <!-- Informationen ausgeben -->
    <div id="OkInfo" class="OkInfo">
    
    </div>
    
    <!-- Platz für die Karte reservieren -->
    <div id="map_canvas"  style="width:100%;height:100%;">
    
    </div>
    
    <!-- Tabs -->
    <div id="tab_steuerung" class="tab_steuerung">
                
               <!-- Tab Überschriften -->
               <div id="tabs">
                <ul>
                    <li><a href="#fragment-1">Frage hinzufügen</a></li>
                    <li><a href="#fragment-2">Fragenliste</a></li>
                    <li><a href="#fragment-3">Gewinner ermitteln</a></li>
                    <li><a href="#fragment-4">Datenexport</a></li>
               </ul>
               
               <!-- Tab: Ort suchen -->
               <div id="fragment-1" class="ui-tabs-panel">
               	<center>
             
                        <br />
                        Antwort Ort suchen
                        <br />
                                <input name="WLW_ort" class="inputField" type="text" id="WLW_ort" 
                                value="Fachhochschule Kaiserslautern" /> 
                                             	
                       			<input type="button" class="button" name="btn_geocode" 
                                id="btn_geocode" value="Geokoordinaten ermitteln" onclick="myGeocode();" />
                 		<hr />
               
    
                                <input name="WLW_posX" type="text" class="inputFieldDisabled"
                                 id="WLW_posX" maxlength="6" readonly />
        
                                <input name="WLW_posY" type="text" class="inputFieldDisabled"
                                 id="WLW_posY" maxlength="8" readonly />
                                 
                                Frage festlegen
                                <input name="WLW_frage" class="inputField" type="text"
                                 id="WLW_frage" value="" onkeyup="CheckQuestion();" />
        
                                <input name="btn_db" class="button" type="button" style="display:none";
                                 id="btn_db" value="Frage in der Datenbank abspeichern" onclick="insertQuestion();" />
        
                                <input type="hidden" name="WLW_posX_hidden" id="WLW_posX_hidden" value="" />
                                <input type="hidden" name="WLW_posY_hidden" id="WLW_posY_hidden" value="" />
                                <input type="hidden" name="WLW_ort_hidden" id="WLW_ort_hidden" value="" />

           		 </center>
                </div>
                
                <!-- Tab: Fragenliste - Wird dynamisch erzeugt -->
                <div id="fragment-2" class="ui-tabs-panel ui-tabs-hide">
                      
                </div>
                
                <!-- Tab: Gewinnerermittlung -->
                <div id="fragment-3" class="ui-tabs-panel">
                <fieldset>
                    <legend>Art der Gewinnermittlung</legend>
                        <input name="rad_zufall" type="radio" id="rad_zufall" value="Z" checked="checked" 
                        onchange="gewinnermittlung_Info(this);" />
                        
                        Zufällige Teilnehmer
                        <input type="radio" name="rad_zufall" value="B" id="rad_bestof"
                         onchange="gewinnermittlung_Info(this);" />
                        Best of
                        <br />
                        
                        <!-- Ausgabe bei erfolgreicher Erzeugung der Gewinnerschreiben -->
                        <div class="info_div" id="gewinnermittelung_info">
                        Die Gewinner werden zufällig aus dem Teilnehmerpool gezogen.
                        </div>

                </fieldset>
            
                <fieldset>
                <legend>Gewinnerzahl</legend>
            
            	<!-- Anzahl der max. möglichen Gewinner -->
                <select name="select_count" size="1" id="select_count">
                  <?php
                  	getPlayerCount();
                  ?>
                </select>
    
            <div class="info_div" id="gewinnanzahl_info">
            Legen Sie fest, wieviele Gewinner aus dem Teilnehmerpool ermittelt werden sollen.
            </div>
            
            <div class="bestaetigung_div" id="druckErfolgreich">
            
            </div>
            
            <input class="button" name="btn_db2" type="button" id="btn_db2"
             value="Anschreiben generieren" onclick="printAnschreiben();" />
            
          </fieldset>
    
            <br />
    
        </div>
				
          <!-- Tab: Spielerdaten exportieren -->
          <div id="fragment-4" class="ui-tabs-panel ui-tabs-hide">
            <center>
            <fieldset>
          	   <legend>Spielerlisten exportieren</legend>
          
               <input name="rad_export" type="radio" id="rad_pdf" value="pdf" checked="checked" 
                  onchange="set_Export(this);" />
                  PDF
                  <input type="radio" name="rad_export" value="csv" id="rad_csv"
                   onchange="set_Export(this);" />
                  CSV
              <br />         
          		
              <div class="info_div" id="export_info">
              	In welcher Form sollen die Spielerdaten exportiert
              </div>
          
              <input name="pdf" id="buttonExport" class="button" value="PDF Drucken"
               type="button" onclick="set_Download(this);" />		
           
           </fieldset>

          </div>
                
                
       </div>
              
    </div>
        
        <!-- IFrame zum öffnen des Dateiexportes -->
        <iframe id="exportFrame" style="visibility:hidden;">
        </iframe>
        
</body>

</html>
